﻿using TrackSystem.Entities.Dtos.Sensor;
using TrackSystem.Entities.Models;
using TrackSystem.Entities.RequestFeatures;

namespace TrackSystem.Contracts
{
    public interface ISensorRepository : IRepository<SensorTable, int>
    {
        Task<IEnumerable<SensorTable>> GetAllWithChannelAsync();

        PagedList<SensorTable> GetPagedSensors(RequestParameter parameter);

        Task<ApiResult<SensorWithChannelDto>>  GetSingleWithChannelAsync(int id);

        Task<ApiResult<SensorWithChannelDto>> AddSensorAsync(SensorTable sensor);

        Task<ApiResult<SensorWithChannelDto>> UpdateSensorAsync(SensorTable sensor);

        Task<ApiResult<SensorWithChannelDto>> DeleteSensorAsync(int Id);
    }
}
